package com.gin.no_gay_alliance.database.dao;

import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;

import com.gin.no_gay_alliance.database.entity.NgaEmoteCount;

import java.util.List;

/**
 * @author : ginstone
 * @version : v1.0.0
 * @since : 2023/9/2 16:15
 **/
@Dao
public interface NgaEmoteCountDao {
    /**
     * 新增一个计数
     *
     * @param count
     */
    @Insert
    void add(NgaEmoteCount count);

    /**
     * 清空数据
     *
     * @return
     */
    @Query("delete from NgaEmoteCount")
    int clear();

    /**
     * 查询一个计数
     *
     * @param code
     * @return
     */
    @Query("SELECT * FROM NgaEmoteCount where code=:code")
    NgaEmoteCount getByCode(String code);

    @Query("SELECT * FROM NgaEmoteCount")
    List<NgaEmoteCount> listAll();

    /**
     * 按使用次数降序查询前x个计数
     *
     * @param size
     * @return
     */
    @Query("SELECT * FROM NgaEmoteCount order by count desc limit :size")
    List<NgaEmoteCount> listTop(int size);

    /**
     * 更新计数
     *
     * @param account
     * @return
     */
    @Update
    int update(NgaEmoteCount account);
}
